﻿
//命名空间
namespace Common
{
	//单例泛型
	public class Singleton<T> where T:new()//声明了一个类型参数必须具有无参数的公共构造函数泛型类
	{
		private static T Instance;
		private static readonly object syslock = new object(); //构造函数
		
		public static T GetInstance()//GetInstance函数确保实例化一次
		{
			if(Instance == null)//执行锁定操作来实现线程同步
			{
				lock(syslock)
				{
					if (Instance == null)
						Instance = new T();
				}
			}
			return Instance;
		}

	}
}

